import { saveEnvInfo } from '../env'
import { createDist } from '../toolkit/createDist'
import { compileJson } from '../compile/json'
import { getModuleDeps } from '../toolkit/getModuleDeps'

import { compileWxml } from '../compile/wxml'
import { compileJS } from '../compile/js'
import { compileWxss } from '../compile/wxss'
import { publist } from '../publist'


async function build(param,callback){
    if(!param.publish){
        param.publish=false;
    }
    // 保存环境信息
    saveEnvInfo(param.publishPath);

    // 创建dist目录
    createDist();

    //编译配置文件
    compileJson();

    // 获取模块依赖,app.json中配置的页面
    const moduleDeps=getModuleDeps();

    //编译模板文件
    compileWxml(moduleDeps);

    //编译js文件
    compileJS();

    //编译wxss文件
    await compileWxss(moduleDeps);

    if(param.publish){
        //发布编译文件
        publist(param.publishPath);
    }
    callback && callback();
}


export default build;